package com.xiaoda.controller;

import com.xiaoda.entity.Collect;
import com.xiaoda.entity.JsonResult;
import com.xiaoda.service.CollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 收藏管理
 */

@Controller
@CrossOrigin
@RequestMapping("/collect")
@ResponseBody
public class CollectController {

    @Autowired
    CollectService collectService;

    /**
     * 收藏文章
     *
     * @param isCollected 收藏还是取消收藏
     * @param fromUid     收藏人
     * @param toAid       收藏的文章
     * @return 收藏结果
     */
    @PostMapping("/article")
    public JsonResult article(@RequestParam("isCollected") boolean isCollected,
                              @RequestParam("fromUid") String fromUid,
                              @RequestParam("toAid") int toAid) {
        JsonResult json = new JsonResult();
        if (isCollected) {
            int row = collectService.addCollectArticle(fromUid, toAid);
            if (row > 0) {
                json.setCode(200);
                json.setMsg("收藏帖子成功！！！");
            } else {
                json.setCode(404);
                json.setMsg("收藏帖子失败！！！");
            }
        } else {
            int row = collectService.delCollectArticle(fromUid, toAid);
            if (row > 0) {
                json.setCode(200);
                json.setMsg("取消收藏帖子成功！！！");
            } else {
                json.setCode(404);
                json.setMsg("取消收藏帖子失败！！！");
            }
        }
        json.setData(null);
        return json;
    }

    /**
     * 查询收藏的文章
     *
     * @param fromUid 收藏人
     * @param start   开始位置
     * @param end     结束位置
     * @return 收藏的文章
     */
    @GetMapping("/count")
    public JsonResult count(@RequestParam("fromUid") String fromUid,
                            @RequestParam("start") int start,
                            @RequestParam("end") int end) {
        JsonResult json = new JsonResult();
        List<Collect> list = collectService.findAllByUid(fromUid, start, end);
        for (Collect cot : list) {
            cot.getFromUid().setPassword(null);
        }
        if (list.isEmpty()) {
            json.setCode(404);
            json.setMsg("未查询到收藏的文章！！！");
        } else {
            json.setCode(200);
            json.setMsg("收藏的文章查询成功！！！");
        }
        json.setData(list);
        return json;
    }

}
